package juc.jmm;

/**
 * 单例
 */
public class SingletonFactory {

    private static volatile SingletonFactory myInstance;

    public static SingletonFactory getInstance(){
        if (myInstance==null){
            synchronized (SingletonFactory.class){
                if (myInstance==null){
                    //1、开辟一片内存空间
                    //2、对象初始化
                    //3、myInstance指向内存空间的地址。
                    //第二部、第三步可以进行指令重排序。
                    myInstance=new SingletonFactory();
                }
            }
        }
        return myInstance;
    }

}
